package com.hy.helper;




import com.hy.admin.pojo.SysMenu;

import java.util.ArrayList;
import java.util.List;


public class MenuHelper {


    /**
     * 构建树形结构
     * @param adMenuList
     * @return
     */
    public static List<SysMenu> buildTree(List<SysMenu> adMenuList) {
        // 创建集合
        List<SysMenu> list = new ArrayList<>();
        // 遍历集合
        for (SysMenu adMenu : adMenuList) {
            if (adMenu.getParentId().longValue() == 0) {
                // 判断是否是一级菜单
                list.add(findChildren(adMenu, adMenuList));
            }
        }
        return list;
    }

    /**
     * 递归查询子节点
     * @param adMenu
     * @param adMenuList
     * @return
     */
    private static SysMenu findChildren(SysMenu adMenu, List<SysMenu> adMenuList) {
        // 判断集合是否为空
        adMenu.setChildren(new ArrayList<SysMenu>());
        for (SysMenu menu : adMenuList) {
            // 判断菜单id和菜单父id是否相等
            if (adMenu.getId().longValue() == menu.getParentId().longValue()) {
                // 递归查询子节点
                adMenu.getChildren().add(findChildren(menu, adMenuList));
            }
        }
        return adMenu;
    }
}
